React добавляем inderterminate чекбоксу
Мне нравится React, рендеринг на основе состояния и логический рабочий процесс позволили мне увидеть свет в этой современной среде. Это не значит, что я иногда не расстраиваюсь, что «простые» вещи кажутся сложнее, чем они должны быть. Получение ссылки на элемент и изменение его свойств раньше было простым, но теперь вы должны принять во внимание, что у вас обычно нет ссылок на элементы - вам нужно думать по-другому. Я узнал об этом, когда мне нужно было установить свойство inderterminate чекбоксу, свойство, не распознаваемое с помощью атрибута, которое требует дескриптора элемента и установки свойства напрямую.
Параметр inderterminate добавляет неопределенное состояние элементу в данном случае чекбоксу
Чтобы добавить свойство inderterminate к чекбоксу, мне нужно было воспользоваться атрибутом ref:
const { value, checked, indeterminate } = this.props return render( el && (el.indeterminate = indeterminate)} /> )
Поскольку ref запускается при каждом рендеринге, свойство inderterminate обновляется соответствующим образом, и, таким образом, чекбокс отображается, как и ожидалось.
Независимо от того, насколько удивительным выглядит ваш фреймворк, всегда есть слепое пятно, которое требует небольшого "костыля" для достижения ожидаемого. Это то, что делает фреймворк: дает вам 99% того, что вам нужно, и затрудняет 1%!